1. Field of the Invention
The present invention relates to a data communication network and, more particularly, to controlling traffic congestion between a network processor and a host processor in a router of a communication network.
2. Description of the Related Art
In general, a router is functionally divided into a data plane, a control plane, and a management plane, and the respective functions are performed on a network processor and a host processor.
The data plane of the network processor includes a fast path to forward a large amount of packets to a switch at a high speed, for example, packet forwarding, and a slow path to transfer an exception packet to the host processor (the exception packet being a packet having an option header that is more than a basic header and a packet that is more than a basic packet in size and is divided), the exception packet requiring more complicated processing than simple forwarding such as with a control packet.
The control plane and the management plane of the host processor perform a configuration and a management function for an operator of a routing table via routing protocol message processing.
When excessive traffic that is over the processing capacity is transferred into the slow path between the high-speed network processor and the host processor, the upper host processor can fail to operate properly. Therefore, research has been carried out on efficient congestion control and stream control in such a situation.
A data buffer (shared queue) is used for the stream control between two processors having different CPU process capabilities, and a typical method controls a data transmission rate in a transmitting system to prevent a buffer overflow from occurring in a receiving system.
Typical stream control methods include:
1. Tail-drop: a method in which packets coming in late are discarded when a full queue or overflow occurs.
2. Stop-and-wait: a method which transmits the next packet when an ACK signal is received after transmitting a packet.
3. Sliding window: a method which transmits the next data packet when ACK signals for all data packets are received after transmitting n data packets.
4. Token generation rate dynamic control: a method which sets a threshold in a receiving data buffer and controls a token generation rate of a token generator according to whether or not cells stored in the data buffer are in excess of the threshold.
In the stop-and-wait method, a transmitting system waits for a response from a receiving system before transmitting a data packet after transmitting one data packet. The receiving system transmits an ACK signal when there is no error in the received data packet, and otherwise transmits a NACK signal. The stop-and-wait method can be simply implemented. However, the next packet can be transmitted after a response for a previous packet is received, and thus a time that one frame occupies a link is lengthened, leading to poor data processing efficiency (throughput).
On the other hand, in the sliding window method, a transmitting system transmits n data packets without waiting for an ACK signal. A receiving system receives a maximum of n data packets in order and stores them in a data buffer, and transmits an ACK signal for requesting a transmission of the next data packet when it is confirmed that all data packets have been received.
If a certain data packet is lost or has an error, the receiving system requests retransmission of a corresponding data packet. Here, a parameter “n” is called a window size and denotes the number of data packets which the transmitting system can transmit continuously before receiving the ACK signal. The sliding window method has improved performance compared to the stop-and-wait method but has a disadvantage in that it is complicated to implement because the transmitting and receiving systems must process a plurality of data packets.
Also, the token generation rate dynamic control method just suggests a mechanism of a rate limiting level without considering an available resource (CPU occupancy rate) of a receiving side.
The following patents each discloses features in common with the present invention but do not teach or suggest the inventive features specifically recited in the present application: